package co.com.inventarios.vista;

import co.com.inventarios.logica.IMngmcnsnLogica;
import co.com.inventarios.logica.IProbodegaLogica;
import co.com.inventarios.logica.IProserieLogica;
import co.com.inventarios.logica.ITrasladoLogica;
import co.com.inventarios.logica.IUnimedLogica;
import co.com.inventarios.logica.IVinculadoLogica;
import co.com.inventarios.logica.MngmcnsnLogica;
import co.com.inventarios.logica.ProbodegaLogica;
import co.com.inventarios.logica.ProserieLogica;
import co.com.inventarios.logica.TrasladoLogica;
import co.com.inventarios.logica.UnimedLogica;
import co.com.inventarios.logica.VinculadoLogica;
import co.com.inventarios.modelo.Bodega;
import co.com.inventarios.modelo.Cataventa;
import co.com.inventarios.modelo.Dlluser;
import co.com.inventarios.modelo.Label;
import co.com.inventarios.modelo.Linea;
import co.com.inventarios.modelo.Mngcco;
import co.com.inventarios.modelo.Mngdoc;
import co.com.inventarios.modelo.MngdocId;
import co.com.inventarios.modelo.MngdocWork;
import co.com.inventarios.modelo.Mngmcn;
import co.com.inventarios.modelo.MngmcnId;
import co.com.inventarios.modelo.MngmcnWork;
import co.com.inventarios.modelo.Mngmcnsn;
import co.com.inventarios.modelo.MngmcnsnId;
import co.com.inventarios.modelo.Mngtdc;
import co.com.inventarios.modelo.MngtdcId;
import co.com.inventarios.modelo.Probodega;
import co.com.inventarios.modelo.Producto;
import co.com.inventarios.modelo.Proserie;
import co.com.inventarios.modelo.Prounimed;
import co.com.inventarios.modelo.Unimed;
import co.com.inventarios.modelo.Vinculado;
import co.com.inventarios.utils.InputFileData;
import co.com.inventarios.utils.LecturaArchivoSeries;
import co.com.inventarios.utils.MessageBundleLoader;
import co.com.inventarios.utils.SessionUtil;
import co.com.inventarios.utils.SessionVars;
import co.com.inventarios.utils.Utilidades;

import com.icesoft.faces.component.ext.HtmlCommandButton;
import com.icesoft.faces.component.ext.HtmlInputText;
import com.icesoft.faces.component.ext.HtmlInputTextarea;
import com.icesoft.faces.component.ext.HtmlPanelGrid;
import com.icesoft.faces.component.ext.HtmlSelectOneMenu;
import com.icesoft.faces.component.ext.RowSelectorEvent;
import com.icesoft.faces.component.inputfile.InputFile;

import java.io.File;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.EventObject;
import java.util.List;
import java.util.Date;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import javax.servlet.http.HttpServletRequest;

public class Entradas_MB {
	// // Var y componenetes ini Busqueda ///////////////////////////////////

	private HtmlCommandButton cmdelimina;
	private HtmlCommandButton cmdedita;
	private HtmlCommandButton cmdnuevo;
	private String nombreEliminar;
	private MngdocWork[] mngdocw;
	private Mngdoc DocEdicion = new Mngdoc();
	private Mngdoc mngdocEdicion = new Mngdoc();
	private HtmlInputText txtBuscar;
	private String buscar;
	private Utilidades Utils;
	private String tipo_seriales = "0";
	private HtmlSelectOneMenu bustxttipo;
	private String busbtipo;
	private HtmlInputText txtfechabusca;
	private HtmlSelectOneMenu seleconeestadobus;
	private HtmlSelectOneMenu seleconebusqueda;
	private HtmlSelectOneMenu txtbodegasbus;
	private String selecestadobus;
	private Date fechabusca;
	private SelectItem[] sel_document;
	private SelectItem[] sel_bodega;
	private String busquedacmbbus;
	private boolean modalRendered;
	private boolean selecfecha;
	private boolean btipo_seriales = true;
	private List<Mngtdc> listadocument;
	private String docautorizados;
	private String bodautorizadas;
	private ITrasladoLogica Traslado_logica;
	private Mngdoc Documento;
	private String bempresa;
	private String bclase;
	private String btipo;
	private String bnumero;
	private String busuario;
	private String busunombre;
	private Double breg;
	private Dlluser miDlluser;
	private String bccosto;
	private String bbodegae;
	private String bbodegas;
	private String bbodegasnom;
	private boolean docselec;
	private int numseries;
	private int numseriesIng;
	private List<Mngdoc> listTrasDoc;
	public static final long MEGABYTE_LENGTH_BYTES = 1048000l;
	public static final long KILOBYTE_LENGTH_BYTES = 1024l;
	private String url;
	private InputFileData currentFile;
	private String componentStatus;
	private int fileProgress;

	private String Usucod = ((HttpServletRequest) FacesContext
			.getCurrentInstance().getExternalContext().getRequest())
			.getParameter("Usucodigo");

	// // Var y componenetes fin Busqueda /////////////////////////////////

	// // Var y componenetes Ini Propiedades /////////////////////////////////

	private HtmlSelectOneMenu txttipo;
	private boolean sweditando = false;
	private boolean swnuevo = false;
	private boolean swserie = false;
	private Double aprecio;
	private String aprounidad;

	private HtmlInputText txtnumero;
	private Date bfecha;
	private HtmlInputText txtfecha;
	private HtmlInputText txtbodegasal;
	private HtmlInputText txtbodegasalnom;
	private HtmlSelectOneMenu txtbodegas;
	private String selecestado;
	private HtmlSelectOneMenu seleconeestado;
	private String bdetalle;
	private HtmlInputTextarea txtdetalle;
	private HtmlPanelGrid panelagregar;
	private boolean agregarpro;
	private String aproducto;
	private HtmlInputText txtaproducto;
	private String apronombre;
	private HtmlInputText txtapronombre;
	private String selectedunimed;
	private Mngdoc Mngdoc_c;
	private Vinculado miVinculado;
	private Mngcco miccosto;
	private Bodega miBodegae;
	private Bodega miBodegas;
	private Mngmcn miMngmcns;
	private Mngmcn miMngmcne;
	private MngmcnId miMngmcnIds;
	private MngmcnId miMngmcnIde;
	private Cataventa miCataventa;

	private Label milabel;
	private MngdocId miId;
	private Unimed miUnimed;
	private Producto miProducto;
	private String acatalogo;
	private SelectItem[] sel_unimed;
	private Double aprocantidad;
	private HtmlInputText txtaprocantidad;
	private boolean swcerrado;
	private boolean busqueda1 = true;
	private boolean busqueda2 = false;
	private boolean busqueda3 = false;
	private boolean busqueda4 = false;
	private boolean busqueda5 = false;
	private MngmcnWork[] mngmcnw;
	private Mngmcn DetalleEdicion = new Mngmcn();
	private HtmlInputText txtusuario;
	private HtmlInputText txtnombre;
	private String busquedacmb;
	private String buscarpro;
	private HtmlInputText txtBuscarpro;
	private List<Producto> listProductos;
	private HtmlCommandButton popup_cmdselecionar;
	private HtmlCommandButton cmd_Agraga_Series;
	private boolean modalRenderedpro;
	private String nombreEliminarpro;
	private boolean modalRenderedenviar;
	private IUnimedLogica logicaUnimed;
	private List<Prounimed> listaUnimed;
	private List<Mngmcn> listDetalle;
	private IMngmcnsnLogica logicaMngmcnsn;
	private IProserieLogica logicaProserie;
	private IProbodegaLogica Probodega_logica;

	private boolean proselec;
	private String retornar;

	// popup buscar bodegas
	private boolean modalpopupbodega;
	private String busquedacmbbodega;
	private String buscarbod;
	private HtmlInputText txtBuscarbod;
	private List<Bodega> listaBodega;
	private List<Bodega> listaBodegapopup;
	private HtmlCommandButton popup_cmdselecionarBod;

	// popup buscar proveedor
	private String bproveecod;
	private HtmlInputText txtbproveecod;
	private String bproveenom;
	private IVinculadoLogica Vinculado_logica;
	private List<Vinculado> listaProveepopup;
	private HtmlCommandButton popup_cmdselecionarProvee;
	private HtmlInputText txtBuscarProvee;
	private String buscarProvee;
	private String busquedacmbProvee;
	private boolean modalpopupProvee;
	private Vinculado MiVinculado;
	private Double consecutiv;
	private List<Mngcco> listaseriepopup;
	private String agregarSerie;
	private HtmlInputText txtAgregaSerie;
	private boolean modalpopupSerie;
	private boolean modalpopupSerieIng;
	private Mngcco MiMngmcnsn;
	private Mngmcnsn MiMngmcnsn_cons;
	private List<Proserie> MiPrserie_cons;
	private MngmcnsnId MiMngmcnsn_consId;
	private HtmlCommandButton popup_cmdselecionarSerie;
	private List<Mngcco> listseries = new ArrayList<Mngcco>();
	private List<Mngmcnsn> listseriesIng = new ArrayList<Mngmcnsn>();
	private List<Probodega> listProbodega;

	// // Var y componenetes Fin Propiedades /////////////////////////////////

	// // Get and Set Ini Busqueda ///////////////////////////////////////

	public Entradas_MB() {
		bclase = "EN01";
		bempresa = "001";
		Usucod = (String) SessionUtil.get(SessionVars.USER);
		busuario = (String) SessionUtil.get(SessionVars.USER);
		// sel_busqueda = null;
		try {
			action_Validausuario();
			action_validadoc(null);

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public ITrasladoLogica getTraslado_logica() {
		return Traslado_logica;
	}

	public void setTraslado_logica(ITrasladoLogica traslado_logica) {
		Traslado_logica = traslado_logica;
	}

	public double getConsecutiv() {
		return consecutiv;
	}

	public void setConsecutiv(double consecutiv) {
		this.consecutiv = consecutiv;
	}

	public HtmlCommandButton getCmdelimina() {
		return cmdelimina;
	}

	public Utilidades getUtils() {
		return Utils;
	}

	public void setUtils(Utilidades utils) {
		Utils = utils;
	}

	public void setConsecutiv(Double consecutiv) {
		this.consecutiv = consecutiv;
	}

	public HtmlCommandButton getCmdedita() {
		return cmdedita;
	}

	public Dlluser getMiDlluser() {
		return miDlluser;
	}

	public boolean isDocselec() {
		return docselec;
	}

	public List<Probodega> getListProbodega() {
		return listProbodega;
	}

	public void setListProbodega(List<Probodega> listProbodega) {
		this.listProbodega = listProbodega;
	}

	public List<Proserie> getMiPrserie_cons() {
		return MiPrserie_cons;
	}

	public void setMiPrserie_cons(List<Proserie> miPrserie_cons) {
		MiPrserie_cons = miPrserie_cons;
	}

	public IProserieLogica getLogicaProserie() {
		return logicaProserie;
	}

	public void setLogicaProserie(IProserieLogica logicaProserie) {
		this.logicaProserie = logicaProserie;
	}

	public IProbodegaLogica getProbodega_logica() {
		return Probodega_logica;
	}

	public void setProbodega_logica(IProbodegaLogica probodega_logica) {
		Probodega_logica = probodega_logica;
	}

	public int getNumseriesIng() {
		return numseriesIng;
	}

	public void setNumseriesIng(int numseriesIng) {
		this.numseriesIng = numseriesIng;
	}

	public void setDocselec(boolean docselec) {
		this.docselec = docselec;
	}

	public boolean isBtipo_seriales() {
		return btipo_seriales;
	}

	public void setBtipo_seriales(boolean btipo_seriales) {
		this.btipo_seriales = btipo_seriales;
	}

	public String getTipo_seriales() {
		return tipo_seriales;
	}

	public void setTipo_seriales(String tipo_seriales) {
		this.tipo_seriales = tipo_seriales;
	}

	public void setMiDlluser(Dlluser miDlluser) {
		this.miDlluser = miDlluser;
	}

	public HtmlCommandButton getPopup_cmdselecionarSerie() {
		return popup_cmdselecionarSerie;
	}

	public void setPopup_cmdselecionarSerie(
			HtmlCommandButton popup_cmdselecionarSerie) {
		this.popup_cmdselecionarSerie = popup_cmdselecionarSerie;
	}

	public String getBempresa() {
		return bempresa;
	}

	public HtmlInputText getTxtAgregaSerie() {
		return txtAgregaSerie;
	}

	public void setTxtAgregaSerie(HtmlInputText txtAgregaSerie) {
		this.txtAgregaSerie = txtAgregaSerie;
	}

	public void setBempresa(String bempresa) {
		this.bempresa = bempresa;
	}

	public String getBclase() {
		return bclase;
	}

	public void setBclase(String bclase) {
		this.bclase = bclase;
	}

	public String getBtipo() {
		return btipo;
	}

	public Mngmcnsn getMiMngmcnsn_cons() {
		return MiMngmcnsn_cons;
	}

	public void setMiMngmcnsn_cons(Mngmcnsn miMngmcnsn_cons) {
		MiMngmcnsn_cons = miMngmcnsn_cons;
	}

	public boolean isSwserie() {
		return swserie;
	}

	public void setSwserie(boolean swserie) {
		this.swserie = swserie;
	}

	public String getBproveecod() {
		return bproveecod;
	}

	public void setBproveecod(String bproveecod) {
		this.bproveecod = bproveecod;
	}

	public HtmlInputText getTxtbproveecod() {
		return txtbproveecod;
	}

	public void setTxtbproveecod(HtmlInputText txtbproveecod) {
		this.txtbproveecod = txtbproveecod;
	}

	public String getBproveenom() {
		return bproveenom;
	}

	public void setBproveenom(String bproveenom) {
		this.bproveenom = bproveenom;
	}

	public IVinculadoLogica getVinculado_logica() {
		return Vinculado_logica;
	}

	public void setVinculado_logica(IVinculadoLogica vinculado_logica) {
		Vinculado_logica = vinculado_logica;
	}

	public List<Vinculado> getListaProveepopup() {
		return listaProveepopup;
	}

	public void setListaProveepopup(List<Vinculado> listaProveepopup) {
		this.listaProveepopup = listaProveepopup;
	}

	public HtmlCommandButton getPopup_cmdselecionarProvee() {
		return popup_cmdselecionarProvee;
	}

	public void setPopup_cmdselecionarProvee(
			HtmlCommandButton popup_cmdselecionarProvee) {
		this.popup_cmdselecionarProvee = popup_cmdselecionarProvee;
	}

	public HtmlInputText getTxtBuscarProvee() {
		return txtBuscarProvee;
	}

	public void setTxtBuscarProvee(HtmlInputText txtBuscarProvee) {
		this.txtBuscarProvee = txtBuscarProvee;
	}

	public String getBuscarProvee() {
		return buscarProvee;
	}

	public void setBuscarProvee(String buscarProvee) {
		this.buscarProvee = buscarProvee;
	}

	public String getBusquedacmbProvee() {
		return busquedacmbProvee;
	}

	public void setBusquedacmbProvee(String busquedacmbProvee) {
		this.busquedacmbProvee = busquedacmbProvee;
	}

	public boolean isModalpopupProvee() {
		return modalpopupProvee;
	}

	public void setModalpopupProvee(boolean modalpopupProvee) {
		this.modalpopupProvee = modalpopupProvee;
	}

	public Mngdoc getDocumento() {
		return Documento;
	}

	public void setDocumento(Mngdoc documento) {
		Documento = documento;
	}

	public String getBusuario() {
		return busuario;
	}

	public void setBusuario(String busuario) {
		this.busuario = busuario;
	}

	public String getBusunombre() {
		return busunombre;
	}

	public void setBusunombre(String busunombre) {
		this.busunombre = busunombre;
	}

	public void setBtipo(String btipo) {
		this.btipo = btipo;
	}

	public String getBnumero() {
		return bnumero;
	}

	public void setBnumero(String bnumero) {
		this.bnumero = bnumero;
	}

	public Double getBreg() {
		return breg;
	}

	public void setBreg(Double breg) {
		this.breg = breg;
	}

	public boolean isSelecfecha() {
		return selecfecha;
	}

	public void setSelecfecha(boolean selecfecha) {
		this.selecfecha = selecfecha;
	}

	public void setCmdedita(HtmlCommandButton cmdedita) {
		this.cmdedita = cmdedita;
	}

	public HtmlCommandButton getCmdnuevo() {
		return cmdnuevo;
	}

	public void setCmdnuevo(HtmlCommandButton cmdnuevo) {
		this.cmdnuevo = cmdnuevo;
	}

	public void setCmdelimina(HtmlCommandButton cmdelimina) {
		this.cmdelimina = cmdelimina;
	}

	public String getNombreEliminar() {
		return nombreEliminar;
	}

	public void setNombreEliminar(String nombreEliminar) {
		this.nombreEliminar = nombreEliminar;
	}

	public void setMngdocw(MngdocWork[] mngdocw) {
		this.mngdocw = mngdocw;
	}

	public MngdocWork[] getMngdocw() {
		Traslado_logica = new TrasladoLogica();
		if (mngdocw == null) {
			try {
				if (listTrasDoc != null) {
					mngdocw = Traslado_logica
							.findmngDocSelectedRow(listTrasDoc);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return mngdocw;
	}

	public Mngdoc getMngdocEdicion() {
		return mngdocEdicion;
	}

	public void setMngdocEdicion(Mngdoc mngdocEdicion) {
		this.mngdocEdicion = mngdocEdicion;
	}

	public HtmlInputText getTxtBuscar() {
		return txtBuscar;
	}

	public int getNumseries() {
		return numseries;
	}

	public void setNumseries(int numseries) {
		this.numseries = numseries;
	}

	public void setTxtBuscar(HtmlInputText txtBuscar) {
		this.txtBuscar = txtBuscar;
	}

	public List<Mngcco> getListseries() {
		return listseries;
	}

	public void setListseries(List<Mngcco> listseries) {
		this.listseries = listseries;
	}

	public String getBuscar() {
		return buscar;
	}

	public void setBuscar(String buscar) {
		this.buscar = buscar;
	}

	public String getBbodegasnom() {
		return bbodegasnom;
	}

	public void setBbodegasnom(String bbodegasnom) {
		this.bbodegasnom = bbodegasnom;
	}

	public HtmlSelectOneMenu getBustxttipo() {
		return bustxttipo;
	}

	public String getBodautorizadas() {
		return bodautorizadas;
	}

	public void setBodautorizadas(String bodautorizadas) {
		this.bodautorizadas = bodautorizadas;
	}

	public String getBccosto() {
		return bccosto;
	}

	public void setBccosto(String bccosto) {
		this.bccosto = bccosto;
	}

	public String getBbodegae() {
		return bbodegae;
	}

	public void setBbodegae(String bbodegae) {
		this.bbodegae = bbodegae;
	}

	public String getBbodegas() {
		return bbodegas;
	}

	public void setBbodegas(String bbodegas) {
		this.bbodegas = bbodegas;
	}

	public void setBustxttipo(HtmlSelectOneMenu bustxttipo) {
		this.bustxttipo = bustxttipo;
	}

	public String getBusbtipo() {
		return busbtipo;
	}

	public void setBusbtipo(String busbtipo) {
		this.busbtipo = busbtipo;
	}

	public HtmlInputText getTxtfechabusca() {
		return txtfechabusca;
	}

	public void setTxtfechabusca(HtmlInputText txtfechabusca) {
		this.txtfechabusca = txtfechabusca;
	}

	public HtmlSelectOneMenu getSeleconeestadobus() {
		return seleconeestadobus;
	}

	public void setSeleconeestadobus(HtmlSelectOneMenu seleconeestadobus) {
		this.seleconeestadobus = seleconeestadobus;
	}

	public HtmlSelectOneMenu getSeleconebusqueda() {
		return seleconebusqueda;
	}

	public void setSeleconebusqueda(HtmlSelectOneMenu seleconebusqueda) {
		this.seleconebusqueda = seleconebusqueda;
	}

	public String getSelecestadobus() {
		return selecestadobus;
	}

	public void setSelecestadobus(String selecestadobus) {
		this.selecestadobus = selecestadobus;
	}

	public Date getFechabusca() {
		return fechabusca;
	}

	public String getDocautorizados() {
		return docautorizados;
	}

	public void setDocautorizados(String docautorizados) {
		this.docautorizados = docautorizados;
	}

	public void setFechabusca(Date fechabusca) {
		this.fechabusca = fechabusca;
	}

	public List<Mngtdc> getListadocument(String Buscar, String clase) {
		Traslado_logica = new TrasladoLogica();
		if (listadocument == null) {
			try {
				listadocument = Traslado_logica.buscarDocument_Aut(Buscar,
						clase);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return listadocument;
	}

	public void setListadocument(List<Mngtdc> listadocument) {
		this.listadocument = listadocument;
	}

	public SelectItem[] getSel_document() {
		if (sel_document == null) {
			listadocument = null;
			if (docautorizados == null) {
				docautorizados = "X,X";
			}
			listadocument = getListadocument((String) SessionUtil
					.get(SessionVars.DOCAUTORIZADOS), bclase);
			sel_document = new SelectItem[listadocument.size()];
			int i = 0;
			for (Mngtdc obj : listadocument) {
				sel_document[i] = new SelectItem(obj.getId().getTdctipo(), obj
						.getTdcnombre(), obj.getId().getTdctipo());
				i++;
			}
		}
		return sel_document;
	}

	public void setSel_document(SelectItem[] sel_document) {
		this.sel_document = sel_document;
	}

	public SelectItem[] getSel_bodega() {

		if (sel_bodega == null) {
			listaBodega = null;
			if (bodautorizadas == null) {
				bodautorizadas = "X,X";
			}
			listaBodega = getListaBodega((String) SessionUtil
					.get(SessionVars.BODAUTORIZADAS));
			sel_bodega = new SelectItem[listaBodega.size()];
			int i = 0;
			for (Bodega obj : listaBodega) {
				sel_bodega[i] = new SelectItem(obj.getBodcodigo(), obj
						.getBodnombre());
				i++;
			}
		}
		return sel_bodega;
	}

	public void setSel_bodega(SelectItem[] sel_bodega) {
		this.sel_bodega = sel_bodega;
	}

	public List<Bodega> getListaBodega(String Buscar) {
		Traslado_logica = new TrasladoLogica();
		if (listaBodega == null) {
			try {
				listaBodega = Traslado_logica.buscarBodegas_Aut(Buscar);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return listaBodega;
	}

	public void setlistTrasDoc(List<Mngdoc> listTrasDoc) {
		this.listTrasDoc = listTrasDoc;
	}

	public List<Mngdoc> getlistTrasDoc() {
		Traslado_logica = new TrasladoLogica();
		if (listTrasDoc == null) {
			try {
				// listReqDoc = ReqDoc_logica.buscarTodosRequiDoc();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return listTrasDoc;
	}

	public void setListaBodega(List<Bodega> listaBodega) {
		this.listaBodega = listaBodega;
	}

	public String getBusquedacmbbus() {
		return busquedacmbbus;
	}

	public void setBusquedacmbbus(String busquedacmbbus) {
		this.busquedacmbbus = busquedacmbbus;
	}

	public boolean isModalRendered() {
		return modalRendered;
	}

	public void setModalRendered(boolean modalRendered) {
		this.modalRendered = modalRendered;
	}

	public String getUsucod() {
		return Usucod;
	}

	public void setUsucod(String usucod) {
		Usucod = usucod;
	}

	// // Get and Set Fin Busqueda ///////////////////////////////////////////

	// // Get and Set Ini Propiedades
	// ///////////////////////////////////////////
	public HtmlSelectOneMenu getTxttipo() {
		return txttipo;
	}

	public Cataventa getMiCataventa() {
		return miCataventa;
	}

	public void setMiCataventa(Cataventa miCataventa) {
		this.miCataventa = miCataventa;
	}

	public Mngmcn getMiMngmcns() {
		return miMngmcns;
	}

	public void setMiMngmcns(Mngmcn miMngmcns) {
		this.miMngmcns = miMngmcns;
	}

	public Mngmcn getMiMngmcne() {
		return miMngmcne;
	}

	public void setMiMngmcne(Mngmcn miMngmcne) {
		this.miMngmcne = miMngmcne;
	}

	public Mngdoc getMngdoc_c() {
		return Mngdoc_c;
	}

	public void setMngdoc_c(Mngdoc mngdoc_c) {
		Mngdoc_c = mngdoc_c;
	}

	public HtmlInputText getTxtnumero() {
		return txtnumero;
	}

	public String getRetornar() {
		return retornar;
	}

	public void setRetornar(String retornar) {
		this.retornar = retornar;
	}

	public void setTxtnumero(HtmlInputText txtnumero) {
		this.txtnumero = txtnumero;
	}

	public HtmlSelectOneMenu getTxtbodegasbus() {
		return txtbodegasbus;
	}

	public void setTxtbodegasbus(HtmlSelectOneMenu txtbodegasbus) {
		this.txtbodegasbus = txtbodegasbus;
	}

	public Date getBfecha() {
		return bfecha;
	}

	public void setBfecha(Date bfecha) {
		this.bfecha = bfecha;
	}

	public HtmlInputText getTxtfecha() {
		return txtfecha;
	}

	public void setTxtfecha(HtmlInputText txtfecha) {
		this.txtfecha = txtfecha;
	}

	public Mngcco getMiccosto() {
		return miccosto;
	}

	public void setMiccosto(Mngcco miccosto) {
		this.miccosto = miccosto;
	}

	public Bodega getMiBodegae() {
		return miBodegae;
	}

	public void setMiBodegae(Bodega miBodegae) {
		this.miBodegae = miBodegae;
	}

	public Bodega getMiBodegas() {
		return miBodegas;
	}

	public void setMiBodegas(Bodega miBodegas) {
		this.miBodegas = miBodegas;
	}

	public HtmlSelectOneMenu getTxtbodegas() {
		return txtbodegas;
	}

	public void setTxtbodegas(HtmlSelectOneMenu txtbodegas) {
		this.txtbodegas = txtbodegas;
	}

	public List<Mngcco> getListaseriepopup() {
		return listaseriepopup;
	}

	public void setListaseriepopup(List<Mngcco> listaseriepopup) {
		this.listaseriepopup = listaseriepopup;
	}

	public String getAgregarSerie() {
		return agregarSerie;
	}

	public void setAgregarSerie(String agregarSerie) {
		this.agregarSerie = agregarSerie;
	}

	public boolean isModalpopupSerie() {
		return modalpopupSerie;
	}

	public void setModalpopupSerie(boolean modalpopupSerie) {
		this.modalpopupSerie = modalpopupSerie;
	}

	public Mngcco getMiMngmcnsn() {
		return MiMngmcnsn;
	}

	public void setMiMngmcnsn(Mngcco miMngmcnsn) {
		MiMngmcnsn = miMngmcnsn;
	}

	public List<Bodega> getListaBodegapopup() throws Exception {
		return listaBodegapopup;
	}

	public void setListaBodegapopup(List<Bodega> listaBodegapopup) {
		this.listaBodegapopup = listaBodegapopup;
	}

	public List<Producto> getListProductos() throws Exception {
		// ReqDoc_logica = new RequisicionLogica();
		// return ReqDoc_logica.buscarTodosProductos();
		return listProductos;
	}

	public void setListProductos(List<Producto> listProductos) {
		this.listProductos = listProductos;
	}

	public String getBdetalle() {
		return bdetalle;
	}

	public void setBdetalle(String bdetalle) {
		this.bdetalle = bdetalle;
	}

	public HtmlInputTextarea getTxtdetalle() {
		return txtdetalle;
	}

	public Label getMilabel() {
		return milabel;
	}

	public HtmlCommandButton getCmd_Agraga_Series() {
		return cmd_Agraga_Series;
	}

	public void setCmd_Agraga_Series(HtmlCommandButton cmd_Agraga_Series) {
		this.cmd_Agraga_Series = cmd_Agraga_Series;
	}

	public void setMilabel(Label milabel) {
		this.milabel = milabel;
	}

	public MngdocId getMiId() {
		return miId;
	}

	public void setMiId(MngdocId miId) {
		this.miId = miId;
	}

	public void setTxtdetalle(HtmlInputTextarea txtdetalle) {
		this.txtdetalle = txtdetalle;
	}

	public String getAproducto() {
		return aproducto;
	}

	public boolean isModalRenderedpro() {
		return modalRenderedpro;
	}

	public void setModalRenderedpro(boolean modalRenderedpro) {
		this.modalRenderedpro = modalRenderedpro;
	}

	public void setAproducto(String aproducto) {
		this.aproducto = aproducto;
	}

	public HtmlInputText getTxtaproducto() {
		return txtaproducto;
	}

	public String getSelecestado() {
		return selecestado;
	}

	public void setSelecestado(String selecestado) {
		this.selecestado = selecestado;
	}

	public IUnimedLogica getLogicaUnimed() {
		return logicaUnimed;
	}

	public void setLogicaUnimed(IUnimedLogica logicaUnimed) {
		this.logicaUnimed = logicaUnimed;
	}

	public IMngmcnsnLogica getLogicaMngmcnsn() {
		return logicaMngmcnsn;
	}

	public boolean isModalpopupSerieIng() {
		return modalpopupSerieIng;
	}

	public void setModalpopupSerieIng(boolean modalpopupSerieIng) {
		this.modalpopupSerieIng = modalpopupSerieIng;
	}

	public void setLogicaMngmcnsn(IMngmcnsnLogica logicaMngmcnsn) {
		this.logicaMngmcnsn = logicaMngmcnsn;
	}

	public HtmlSelectOneMenu getSeleconeestado() {
		return seleconeestado;
	}

	public void setSeleconeestado(HtmlSelectOneMenu seleconeestado) {
		this.seleconeestado = seleconeestado;
	}

	public HtmlPanelGrid getPanelagregar() {
		return panelagregar;
	}

	public void setPanelagregar(HtmlPanelGrid panelagregar) {
		this.panelagregar = panelagregar;
	}

	public boolean isAgregarpro() {
		return agregarpro;
	}

	public void setAgregarpro(boolean agregarpro) {
		this.agregarpro = agregarpro;
	}

	public HtmlInputText getTxtbodegasalnom() {
		return txtbodegasalnom;
	}

	public void setTxtbodegasalnom(HtmlInputText txtbodegasalnom) {
		this.txtbodegasalnom = txtbodegasalnom;
	}

	public String getSelectedunimed() {
		return selectedunimed;
	}

	public void setSelectedunimed(String selectedunimed) {
		this.selectedunimed = selectedunimed;
	}

	public Double getAprocantidad() {
		return aprocantidad;
	}

	public void setAprocantidad(Double aprocantidad) {
		this.aprocantidad = aprocantidad;
	}

	public boolean isSwcerrado() {
		return swcerrado;
	}

	public void setSwcerrado(boolean swcerrado) {
		this.swcerrado = swcerrado;
	}

	public Mngmcn getDetalleEdicion() {
		return DetalleEdicion;
	}

	public boolean isSweditando() {
		return sweditando;
	}

	public void setSweditando(boolean sweditando) {
		this.sweditando = sweditando;
	}

	public void setSel_unimed(SelectItem[] sel_unimed) {
		this.sel_unimed = sel_unimed;
	}

	public SelectItem[] getSel_unimed() {

		if (sel_unimed == null && this.aproducto != null) {
			listaUnimed = null;
			listaUnimed = getListaUnimed(this.aproducto);
			sel_unimed = new SelectItem[listaUnimed.size()];
			int i = 0;
			for (Prounimed obj : listaUnimed) {
				sel_unimed[i] = new SelectItem(obj.getUnimed().getUmdcodigo(),
						obj.getUnimed().getUmdnombre());
				i++;
			}
		}
		return sel_unimed;
	}

	public void setMngmcnw(MngmcnWork[] mngmcnw) {
		this.mngmcnw = mngmcnw;
	}

	public MngmcnWork[] getMngmcnw() {
		Traslado_logica = new TrasladoLogica();
		if (mngmcnw == null) {
			try {
				if (listDetalle != null) {
					mngmcnw = Traslado_logica
							.findMngmcnSelectedRow(listDetalle);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return mngmcnw;
	}

	public boolean isSwnuevo() {
		return swnuevo;
	}

	public void setSwnuevo(boolean swnuevo) {
		this.swnuevo = swnuevo;
	}

	public void setlistDetalle(List<Mngmcn> listDetalle) {
		this.listDetalle = listDetalle;
	}

	public List<Mngmcn> getlistDetalle() {
		Traslado_logica = new TrasladoLogica();
		listadocument = null;

		try {
			if (swnuevo != true) {
				listDetalle = Traslado_logica.buscarDetalle(bempresa, bclase,
						btipo, bnumero);
			}

		} catch (Exception e) {
			e.printStackTrace();
		}

		return listDetalle;
	}

	public String getBusquedacmb() {
		return busquedacmb;
	}

	public void setBusquedacmb(String busquedacmb) {
		this.busquedacmb = busquedacmb;
	}

	public String getBuscarpro() {
		return buscarpro;
	}

	public boolean isModalpopupbodega() {
		return modalpopupbodega;
	}

	public void setModalpopupbodega(boolean modalpopupbodega) {
		this.modalpopupbodega = modalpopupbodega;
	}

	public String getBusquedacmbbodega() {
		return busquedacmbbodega;
	}

	public void setBusquedacmbbodega(String busquedacmbbodega) {
		this.busquedacmbbodega = busquedacmbbodega;
	}

	public String getBuscarbod() {
		return buscarbod;
	}

	public void setBuscarbod(String buscarbod) {
		this.buscarbod = buscarbod;
	}

	public HtmlInputText getTxtBuscarbod() {
		return txtBuscarbod;
	}

	public void setTxtBuscarbod(HtmlInputText txtBuscarbod) {
		this.txtBuscarbod = txtBuscarbod;
	}

	public HtmlInputText getTxtbodegasal() {
		return txtbodegasal;
	}

	public void setTxtbodegasal(HtmlInputText txtbodegasal) {
		this.txtbodegasal = txtbodegasal;
	}

	public void setBuscarpro(String buscarpro) {
		this.buscarpro = buscarpro;
	}

	public HtmlCommandButton getPopup_cmdselecionar() {
		return popup_cmdselecionar;
	}

	public void setPopup_cmdselecionar(HtmlCommandButton popup_cmdselecionar) {
		this.popup_cmdselecionar = popup_cmdselecionar;
	}

	public void setDetalleEdicion(Mngmcn DetalleEdicion) {
		this.DetalleEdicion = DetalleEdicion;
	}

	public void setTxtaproducto(HtmlInputText txtaproducto) {
		this.txtaproducto = txtaproducto;
	}

	public String getApronombre() {
		return apronombre;
	}

	public void setApronombre(String apronombre) {
		this.apronombre = apronombre;
	}

	public HtmlInputText getTxtapronombre() {
		return txtapronombre;
	}

	public void setTxtapronombre(HtmlInputText txtapronombre) {
		this.txtapronombre = txtapronombre;
	}

	public HtmlInputText getTxtaprocantidad() {
		return txtaprocantidad;
	}

	public void setTxtaprocantidad(HtmlInputText txtaprocantidad) {
		this.txtaprocantidad = txtaprocantidad;
	}

	public HtmlInputText getTxtusuario() {
		return txtusuario;
	}

	public void setTxtusuario(HtmlInputText txtusuario) {
		this.txtusuario = txtusuario;
	}

	public HtmlInputText getTxtnombre() {
		return txtnombre;
	}

	public Producto getMiProducto() {
		return miProducto;
	}

	public void setMiProducto(Producto miProducto) {
		this.miProducto = miProducto;
	}

	public String getAcatalogo() {
		return acatalogo;
	}

	public List<Mngmcnsn> getListseriesIng() {
		return listseriesIng;
	}

	public void setListseriesIng(List<Mngmcnsn> listseriesIng) {
		this.listseriesIng = listseriesIng;
	}

	public void setAcatalogo(String acatalogo) {
		this.acatalogo = acatalogo;
	}

	public boolean isModalRenderedenviar() {
		return modalRenderedenviar;
	}

	public void setModalRenderedenviar(boolean modalRenderedenviar) {
		this.modalRenderedenviar = modalRenderedenviar;
	}

	public void setTxtnombre(HtmlInputText txtnombre) {
		this.txtnombre = txtnombre;
	}

	public HtmlInputText getTxtBuscarpro() {
		return txtBuscarpro;
	}

	public Double getAprecio() {
		return aprecio;
	}

	public HtmlCommandButton getPopup_cmdselecionarBod() {
		return popup_cmdselecionarBod;
	}

	public void setPopup_cmdselecionarBod(
			HtmlCommandButton popup_cmdselecionarBod) {
		this.popup_cmdselecionarBod = popup_cmdselecionarBod;
	}

	public void setAprecio(Double aprecio) {
		this.aprecio = aprecio;
	}

	public String getAprounidad() {
		return aprounidad;
	}

	public void setAprounidad(String aprounidad) {
		this.aprounidad = aprounidad;
	}

	public void setTxtBuscarpro(HtmlInputText txtBuscarpro) {
		this.txtBuscarpro = txtBuscarpro;
	}

	public String getNombreEliminarpro() {
		return nombreEliminarpro;
	}

	public boolean isBusqueda1() {
		return busqueda1;
	}

	public void setBusqueda1(boolean busqueda1) {
		this.busqueda1 = busqueda1;
	}

	public boolean isBusqueda2() {
		return busqueda2;
	}

	public void setBusqueda2(boolean busqueda2) {
		this.busqueda2 = busqueda2;
	}

	public boolean isBusqueda3() {
		return busqueda3;
	}

	public void setBusqueda3(boolean busqueda3) {
		this.busqueda3 = busqueda3;
	}

	public boolean isBusqueda4() {
		return busqueda4;
	}

	public void setBusqueda4(boolean busqueda4) {
		this.busqueda4 = busqueda4;
	}

	public boolean isBusqueda5() {
		return busqueda5;
	}

	public void setBusqueda5(boolean busqueda5) {
		this.busqueda5 = busqueda5;
	}

	public void setNombreEliminarpro(String nombreEliminarpro) {
		this.nombreEliminarpro = nombreEliminarpro;
	}

	public void setTxttipo(HtmlSelectOneMenu txttipo) {
		this.txttipo = txttipo;
	}

	public MngmcnId getMiMngmcnIds() {
		return miMngmcnIds;
	}

	public void setMiMngmcnIds(MngmcnId miMngmcnIds) {
		this.miMngmcnIds = miMngmcnIds;
	}

	public MngmcnId getMiMngmcnIde() {
		return miMngmcnIde;
	}

	public void setMiMngmcnIde(MngmcnId miMngmcnIde) {
		this.miMngmcnIde = miMngmcnIde;
	}

	public Unimed getMiUnimed() {
		return miUnimed;
	}

	public void setMiUnimed(Unimed miUnimed) {
		this.miUnimed = miUnimed;
	}

	public List<Prounimed> getListaUnimed(String producto) {
		logicaUnimed = new UnimedLogica();
		if (listaUnimed == null) {
			try {
				listaUnimed = logicaUnimed.buscarTodosProUnimed(producto);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return listaUnimed;
	}

	public Vinculado getMiVinculado() {
		return miVinculado;
	}

	public void setMiVinculado(Vinculado miVinculado) {
		this.miVinculado = miVinculado;
	}

	public boolean isProselec() {
		return proselec;
	}

	public void setProselec(boolean proselec) {
		this.proselec = proselec;
	}

	public void setListaUnimed(List<Prounimed> listaUnimed) {
		this.listaUnimed = listaUnimed;
	}

	// // Get and Set Fin Propiedades
	// ///////////////////////////////////////////

	// // Actions Busqueda Ini ///////////////////////////////////////////////

	public void action_Validausuario() throws Exception {
		miDlluser = null;
		Traslado_logica = new TrasladoLogica();
		busunombre = null;
		busuario = Usucod;
		Usucod = (String) SessionUtil.get(SessionVars.USER);
		busuario = (String) SessionUtil.get(SessionVars.USER);
		miDlluser = Traslado_logica.consultarRequiUser(Usucod);
		if (miDlluser == null) {
			busunombre = "Usuario No Registrado";
			busuario = null;
			bccosto = null;
		} else {
			busunombre = miDlluser.getUsrnombre();
			bccosto = "CC1 ";
			bbodegae = miDlluser.getBodega().getBodcodigo();
			docautorizados = miDlluser.getUsrtdcaut();
			bodautorizadas = miDlluser.getUsrbodaut();
			// sel_bodega = null;
			sel_document = null;
			// getSel_bodega();
			getSel_document();

			if (sel_document.length > 0) {
				btipo = sel_document[0].getValue().toString();
			}

		}

	}

	public void action_selecBusqueda(ValueChangeEvent vcex) {

		if (vcex.getNewValue() != null) {

			busquedacmbbus = vcex.getNewValue().toString();

			if (busquedacmbbus.equals("docnumero")) {
				busqueda1 = true;
				busqueda2 = false;
				busqueda3 = false;
				busqueda4 = false;
				busqueda5 = false;
			} else {
				if (busquedacmbbus.equals("docfecha")) {
					busqueda1 = false;
					busqueda2 = false;
					busqueda3 = true;
					busqueda4 = false;
					busqueda5 = false;
					Date today = new Date();
					fechabusca = today;
				} else {
					if (busquedacmbbus.equals("docestado")) {
						busqueda1 = false;
						busqueda2 = true;
						busqueda3 = false;
						busqueda4 = false;
						busqueda5 = false;
					} else {
						if (busquedacmbbus.equals("docbodent")) {
							busqueda1 = false;
							busqueda2 = false;
							busqueda3 = false;
							busqueda4 = true;
							busqueda5 = false;
						} else {
							busqueda1 = false;
							busqueda2 = false;
							busqueda3 = false;
							busqueda4 = false;
							busqueda5 = false;

						}
					}
				}
			}
		}
	}

	public void Activapopupeliminar(ActionEvent ae) {
		modalRendered = !modalRendered;
	}

	public void action_EliminarTabla(ActionEvent ae) {
		Traslado_logica = new TrasladoLogica();
		if (docselec == true) {
			Activapopupeliminar(ae);
			try {

				String results = null;
				results = Traslado_logica.Cambio_Estado_Doc(DocEdicion.getId()
						.getDocempresa(), DocEdicion.getId().getDocclase(),
						DocEdicion.getId().getDocvinkey(), DocEdicion.getId()
								.getDoctipo(), DocEdicion.getId()
								.getDocnumero(),DocEdicion.getDocbodsale(), 5);
				if (results == null || results == "" || results == " ") {
					FacesContext.getCurrentInstance().addMessage("msg",
							new FacesMessage("Verifique ." + results + ""));
				} else {

					// setDocumento(Traslado_logica.consultarMngDoc("id",
					// DocEdicion
					// .getId()));
					//
					// setMilabel(Traslado_logica.consultarlabel(new
					// Long("5")));
					// Documento.setLabel(milabel);
					// Traslado_logica.grabar_Mngdoc(Documento);

					FacesContext.getCurrentInstance()
							.addMessage(
									"msg",
									new FacesMessage(
											"Se actualizo Satisfactoriamente"));

					listTrasDoc = null;
					listTrasDoc = Traslado_logica
							.consultarMngdocProperty_Entradas(DocEdicion
									.getId().getDocclase(), DocEdicion.getId()
									.getDoctipo(), "docnumero", DocEdicion
									.getId().getDocnumero().toString(),
									(String) SessionUtil
											.get(SessionVars.BODAUTORIZADAS));
					listTrasDoc = getlistTrasDoc();
					proselec = false;
					docselec = false;
					mngdocw = null;
					DocEdicion = null;
				}
			} catch (Exception e) {
				e.printStackTrace();
				FacesContext.getCurrentInstance().addMessage("msg",
						new FacesMessage(e.getMessage()));
			}
		}
	}

	public void action_confirmacionEliminar(ActionEvent ae) {
		if (docselec == true) {
			if (mngdocw != null) {
				if (DocEdicion.getLabel().getLbcodnum() == 1) {
					Traslado_logica = new TrasladoLogica();
					try {
						setNombreEliminar("Entrada Tipo :"
								+ DocEdicion.getId().getDoctipo() + " Numero :"
								+ DocEdicion.getId().getDocnumero());
					} catch (Exception e) {
						e.printStackTrace();
					}
					Activapopupeliminar(ae);
				} else {
					FacesContext.getCurrentInstance().addMessage(
							"msg",
							new FacesMessage(
									"Debe selecionar un documento zctivo"));
				}
			} else {
				FacesContext.getCurrentInstance().addMessage("msg",
						new FacesMessage("Debe seleccionar un Documento"));
			}
		} else {
			FacesContext.getCurrentInstance().addMessage("msg",
					new FacesMessage("Debe seleccionar un Documento"));
		}
	}

	public void rowSelectionListener(RowSelectorEvent event) {
		MngdocWork documento = null;
		MngdocWork[] lista = getMngdocw();
		docselec = true;
		for (int i = 0; i < getMngdocw().length; i++) {
			documento = lista[i];
			if (documento.isSelected()) {
				DocEdicion = documento.getMngdocw();
			}
		}
	}

	public void action_Buscar(ActionEvent ae) {

		getSel_document();
		if (sel_document.length > 0) {
			btipo = sel_document[0].getValue().toString();
		}

		Traslado_logica = new TrasladoLogica();
		docselec = false;
		try {
			if (busquedacmbbus.equals("docnumero")) {
				if (buscar.length() > 0) {
					FacesContext.getCurrentInstance().addMessage(
							"msg",
							new FacesMessage(MessageBundleLoader
									.getMessage("busqueda.mensaje")
									+ " Numero :" + buscar));
					listTrasDoc = null;
					listTrasDoc = Traslado_logica
							.consultarMngdocProperty_Entradas(bclase, busbtipo,
									"docnumero", buscar, (String) SessionUtil
											.get(SessionVars.BODAUTORIZADAS));
					listTrasDoc = getlistTrasDoc();
					mngdocw = null;
				} else {
					FacesContext.getCurrentInstance().addMessage(
							"msg",
							new FacesMessage(
									"Debe Agregar un valor de busqueda"));
				}

			} else {
				if (busquedacmbbus.equals("docfecha")) {

					SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yy");
					SimpleDateFormat formatomsg = new SimpleDateFormat(
							"dd/MM/yyyy");
					long fecha = fechabusca.getTime();
					long aumento = fecha;
					if (selecfecha == true) {
						aumento = fecha + 86400000;
					}

					Date fechaMax = new Date(aumento);
					String cadenaFecha = formato.format(fechaMax);
					String cadenaFechamsg = formatomsg.format(fechaMax);

					FacesContext.getCurrentInstance().addMessage(
							"msg",
							new FacesMessage(MessageBundleLoader
									.getMessage("busqueda.mensaje")
									+ " Fecha :" + cadenaFechamsg));

					listTrasDoc = null;
					listTrasDoc = Traslado_logica
							.consultarMngdocProperty_Entradas(bclase, busbtipo,
									"docfecha", cadenaFecha,
									(String) SessionUtil
											.get(SessionVars.BODAUTORIZADAS));
					listTrasDoc = getlistTrasDoc();
					mngdocw = null;

				} else {
					if (busquedacmbbus.equals("docestado")) {
						FacesContext.getCurrentInstance().addMessage(
								"msg",
								new FacesMessage(MessageBundleLoader
										.getMessage("busqueda.mensaje")
										+ " Por Estado "));
						// seleconeestadobus
						listTrasDoc = null;
						listTrasDoc = Traslado_logica
								.consultarMngdocProperty_Entradas(
										bclase,
										busbtipo,
										"docestado",
										selecestadobus,
										(String) SessionUtil
												.get(SessionVars.BODAUTORIZADAS));
						listTrasDoc = getlistTrasDoc();
						mngdocw = null;

					} else {

						if (busquedacmbbus.equals("docbodent")) {
							if (bbodegas.length() > 0) {
								// buscar = buscar.toUpperCase();
								FacesContext.getCurrentInstance().addMessage(
										"msg",
										new FacesMessage(MessageBundleLoader
												.getMessage("busqueda.mensaje")
												+ " Bod Destino :" + bbodegas));

								listTrasDoc = null;
								listTrasDoc = Traslado_logica
										.consultarMngdocProperty_Entradas(
												bclase,
												busbtipo,
												"bodega.bodcodigo",
												bbodegas,
												(String) SessionUtil
														.get(SessionVars.BODAUTORIZADAS));
								listTrasDoc = getlistTrasDoc();
								mngdocw = null;
							} else {
								FacesContext
										.getCurrentInstance()
										.addMessage(
												"msg",
												new FacesMessage(
														"Debe Agregar un valor de busqueda"));
							}

						} else {
							FacesContext.getCurrentInstance().addMessage(
									"msg",
									new FacesMessage(MessageBundleLoader
											.getMessage("busqueda.mensaje")
											+ " Todos."));
							mngdocw = null;
							listTrasDoc = null;
							listTrasDoc = Traslado_logica
									.buscarTodosMngDoc_Entradas(
											bclase,
											btipo,
											"",
											(String) SessionUtil
													.get(SessionVars.BODAUTORIZADAS));
							listTrasDoc = getlistTrasDoc();
						}
					}
				}
			}
		} catch (Exception e) {

			e.printStackTrace();

		}

	}

	public void action_BuscarDefault(ActionEvent ae) {
		
		sel_document = null;
		bclase = "EN01";
		bempresa = "001";
	
		getSel_document();
		if (sel_document.length > 0) {
			btipo = sel_document[0].getValue().toString();
		}

		Traslado_logica = new TrasladoLogica();
		docselec = false;
		try {
				FacesContext.getCurrentInstance().addMessage(
						"msg",
						new FacesMessage(MessageBundleLoader
								.getMessage("busqueda.mensaje")
								+ " Por Estado "));
				listTrasDoc = null;
				listTrasDoc = Traslado_logica.consultarMngdocProperty_Entradas(
						bclase, btipo, "docestado","1",
						(String) SessionUtil.get(SessionVars.BODAUTORIZADAS));
				listTrasDoc = getlistTrasDoc();
				mngdocw = null;

		} catch (Exception e) {

			e.printStackTrace();

		}

	}

	public String action_Nuevo() {
		agregarpro = true;
		swnuevo = true;
		sweditando = false;
		swcerrado = false;
		proselec = false;
		aproducto = null;
		apronombre = null;
		aprounidad = null;
		aprecio = null;
		listProbodega = null;
		bproveecod = null;
		bproveenom = null;
		aprocantidad = null;
		listaUnimed = null;
		listaUnimed = null;
		bbodegas = null;
		bbodegasnom = null;
		MiVinculado = null;
		sel_unimed = null;
		swserie = false;
		Mngdoc_c = new Mngdoc();
		Traslado_logica = new TrasladoLogica();
		miccosto = new Mngcco();
		miBodegae = new Bodega();
		miBodegas = new Bodega();
		miDlluser = new Dlluser();
		milabel = new Label();
		miId = new MngdocId();
		miId.setDocclase(bclase);
		miId.setDocempresa(bempresa);
		miId.setDocnumero(0.0);
		miccosto.setCcocodigo("CC1 ");
		Date today = new Date();
		Mngdoc_c.setId(miId);
		Mngdoc_c.setDocccosto("CC1 ");
		Mngdoc_c.setBodega(miBodegae);
		Mngdoc_c.setDlluser(miDlluser);
		Mngdoc_c.setLabel(milabel);
		bdetalle = null;
		bnumero = null;
		bfecha = today;
		bccosto = null;
		bbodegae = null;
		bbodegas = (String) SessionUtil.get(SessionVars.BODEGA);
		busuario = Usucod;
		selecestado = "1";
		try {

			action_Validausuario();
			action_Validabodega(null);
			consecutiv = Traslado_logica.MngDocnum_Id(bclase, btipo);
			int fin = consecutiv.toString().indexOf(".");
			String numero = consecutiv.toString().substring(0, fin);
			bnumero = numero;
			listDetalle = null;
			mngmcnw = null;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "Entrada_P";
	}

	public String action_Editar() {
		if (mngdocw != null && docselec == true) {
			swnuevo = false;
			sweditando = true;
			Mngdoc_c = null;
			apronombre = null;
			aprounidad = null;
			listProbodega = null;
			aprecio = null;
			aprocantidad = null;
			aproducto = null;
			mngmcnw = null;
			listaUnimed = null;
			sel_unimed = null;
			Traslado_logica = new TrasladoLogica();
			miDlluser = null;
			proselec = false;
			try {
				action_Validausuario();

				setMngdoc_c(Traslado_logica.consultarMngDoc("id", DocEdicion
						.getId()));
				selecestado = String.valueOf(DocEdicion.getLabel()
						.getLbcodnum());
				bdetalle = Mngdoc_c.getDocdetalle();
				bclase = Mngdoc_c.getId().getDocclase();
				bempresa = Mngdoc_c.getId().getDocempresa();
				btipo = Mngdoc_c.getId().getDoctipo();
				int fin = Mngdoc_c.getId().getDocnumero().toString().indexOf(
						".");
				bnumero = Mngdoc_c.getId().getDocnumero().toString().substring(
						0, fin);

				bfecha = Mngdoc_c.getDocfecha();
				bccosto = Mngdoc_c.getDocccosto();
				bbodegas = Mngdoc_c.getBodega().getBodcodigo();
				bbodegae = Mngdoc_c.getDocbodsale().toString();
				busuario = Mngdoc_c.getDlluser().getUsrcodigo();
				busuario = Usucod;
				MiVinculado = Mngdoc_c.getVinculado();
				bproveecod = MiVinculado.getVincedula();
				bproveenom = MiVinculado.getVinnombre();
				miBodegas = Traslado_logica.consultarBodega(bbodegas,
						(String) SessionUtil.get(SessionVars.BODAUTORIZADAS));
				bbodegasnom = miBodegas.getBodnombre();
				miDlluser = Traslado_logica.consultarRequiUser(Usucod);
				busunombre = miDlluser.getUsrnombre();

				if (DocEdicion.getLabel().getLbcodnum() == 1) {
					agregarpro = true;
					swcerrado = false;
				} else {
					agregarpro = false;
					swcerrado = true;
				}

				listDetalle = null;
				listDetalle = getlistDetalle();
				mngmcnw = null;

			} catch (Exception e) {
				e.printStackTrace();
			}

			return "Entrada_P";
		} else {
			FacesContext.getCurrentInstance().addMessage("msg",
					new FacesMessage("Debe seleccionar un Documento"));
			return "Error";
		}
	}

	public void action_selecfecha(ValueChangeEvent ae) {
		selecfecha = true;
	}

	// /// Actions Busqueda Fin ///////////////////////////////////////////////

	// // Actions Propiedades Ini ///////////////////////////////////////

	public void toggleModalpro(ActionEvent ae) {
		modalRenderedpro = !modalRenderedpro;
	}

	public void toggleModalenviar(ActionEvent ae) {
		modalRenderedenviar = !modalRenderedenviar;
	}

	// action_confirmacionEnviarRequi
	public void action_confirmacionCerrarmngdoc(ActionEvent ae) {
		if (mngmcnw != null) {
			if (mngmcnw.length > 0) {
				toggleModalenviar(ae);
			} else {
				FacesContext.getCurrentInstance().addMessage(
						"msg",
						new FacesMessage(
								"Este Existen productos en este Traslado."));
			}
		} else {
			FacesContext
					.getCurrentInstance()
					.addMessage(
							"msg",
							new FacesMessage(
									"Este Existen productos en este Traslado."));
		}
	}

	// action_Enviar_requi

	public void action_CerrarMngDoc(ActionEvent ae) throws Exception {

		String results = null;
		Traslado_logica = new TrasladoLogica();
		results = Traslado_logica.Cambio_Estado_Doc(Mngdoc_c.getId()
				.getDocempresa(), Mngdoc_c.getId().getDocclase(), Mngdoc_c
				.getId().getDocvinkey(), Mngdoc_c.getId().getDoctipo(),
				Mngdoc_c.getId().getDocnumero(),Mngdoc_c.getDocbodsale(), 8);

		if (results == null || results == "" || results == " ") {
			FacesContext.getCurrentInstance().addMessage("msg",
					new FacesMessage("Verifique ." + results + ""));
		} else {
			toggleModalenviar(ae);
			selecestado = "8";
			setMilabel(Traslado_logica.consultarlabel(new Long(selecestado)));
			Mngdoc_c.setLabel(milabel);
			action_Guardar_MngDoc();
			agregarpro = false;
			swcerrado = true;
			swnuevo = false;
			sweditando = true;
		}

	}

	// action_EliminarTablaPro
	public void action_EliminarTablaPro(ActionEvent ae) {

		if (proselec == true) {
			Traslado_logica = new TrasladoLogica();
			try {
				toggleModalpro(ae);
				// String out_proS = Traslado_logica.quitar_movtrasladoSeries(
				// DetalleEdicion.getId().getMcnempresa(), DetalleEdicion
				// .getId().getMcnclase(), DetalleEdicion.getId()
				// .getMcnvinkey(), DetalleEdicion.getId()
				// .getMcntipodoc(), DetalleEdicion.getId()
				// .getMcnnumedoc().doubleValue(), DetalleEdicion
				// .getId().getMcnreg().intValue());

				// String out_pro =
				// Traslado_logica.quitar_movtraslado(DetalleEdicion
				// .getId().getMcnempresa(), DetalleEdicion.getId()
				// .getMcnclase(), DetalleEdicion.getId().getMcnvinkey(),
				// DetalleEdicion.getId().getMcntipodoc(), DetalleEdicion
				// .getId().getMcnnumedoc().doubleValue(),
				// DetalleEdicion.getId().getMcnreg().intValue());

				Traslado_logica.eliminar_MngmcnEnt(DetalleEdicion.getId());

				// if (out_pro == null) {
				FacesContext.getCurrentInstance().addMessage(
						"msg",
						new FacesMessage(
								"Se actualizo Registro Satisfactoriamente"));
				// } else {
				// FacesContext.getCurrentInstance().addMessage("msg",
				// new FacesMessage(out_pro));
				// }
				docselec = false;
				listDetalle = null;
				listDetalle = getlistDetalle();
				mngmcnw = null;
				proselec = false;
			} catch (Exception e) {
				e.printStackTrace();
				FacesContext
						.getCurrentInstance()
						.addMessage(
								"msg",
								new FacesMessage(
										"No se puede eliminar el registro tiene movimiento."));
			}
		}
	}

	// popupAccion_Cerrar
	public void popupAccion_Cerrar(ActionEvent ae) {
		modalRendered = !modalRendered;
	}

	public void popupAccion_CerrarBod(ActionEvent ae) {
		modalpopupbodega = !modalpopupbodega;
	}

	// popupAccion_Selecionar
	public void popupAccion_Selecionar(ActionEvent ae) throws Exception {
		this.txtaproducto.setValue(popup_cmdselecionar.getValue().toString());
		aproducto = popup_cmdselecionar.getValue().toString();
		action_Validaproducto(ae);
		modalRendered = !modalRendered;
	}

	public void popupAccion_SelecionarBod(ActionEvent ae) throws Exception {
		bbodegas = popup_cmdselecionarBod.getValue().toString();
		action_Validabodega(ae);
		modalpopupbodega = !modalpopupbodega;
	}

	public void action_Validabodega(ActionEvent ae) throws Exception {

		miBodegas = null;
		Traslado_logica = new TrasladoLogica();
		miBodegas = Traslado_logica.consultarBodega(bbodegas,
				(String) SessionUtil.get(SessionVars.BODAUTORIZADAS));
		if (miBodegas == null) {
			miBodegas = null;
			bbodegasnom = "";
			// txtbodegasal.requestFocus();

			FacesContext.getCurrentInstance().addMessage(
					"msg",
					new FacesMessage("Bodega " + bbodegas
							+ " no existe o no se encuentra autorizada"));
			bbodegas = "";
		} else {
			bbodegasnom = miBodegas.getBodnombre();
			// txtdetalle.setValue(miBodegas.getBodnombre());
			// txtdetalle.requestFocus();
		}

	}

	public void action_BuscarBod(ActionEvent ae) {
		listaBodegapopup = null;
		Traslado_logica = new TrasladoLogica();

		try {
			if (busquedacmbbodega.equals("bodnombre")) {
				FacesContext.getCurrentInstance().addMessage("msgbod",
						new FacesMessage("Resultado nombre :" + buscarbod));
				listaBodegapopup = Traslado_logica.consultarBodegaLike(
						"bodnombre", buscarbod.toUpperCase(),
						(String) SessionUtil.get(SessionVars.BODAUTORIZADAS));

			} else {
				if (busquedacmbbodega.equals("bodcodigo")) {
					FacesContext.getCurrentInstance().addMessage("msgbod",
							new FacesMessage("Resultado Codigo :" + buscarbod));
					listaBodegapopup = Traslado_logica.consultarBodegaLike(
							"bodnombre", buscarbod.toUpperCase(),
							(String) SessionUtil
									.get(SessionVars.BODAUTORIZADAS));
				} else {

					if (busquedacmbbodega.equals("todos")) {
						FacesContext.getCurrentInstance().addMessage(
								"msgbod",
								new FacesMessage("Resultado Codigo :"
										+ buscarbod));

						listaBodegapopup = Traslado_logica
								.buscarBodegas_Aut((String) SessionUtil
										.get(SessionVars.BODAUTORIZADAS));
					}

				}
			}
		} catch (Exception e) {

			e.printStackTrace();

		}

	}

	// action_BuscarPro
	public void action_BuscarPro(ActionEvent ae) {

		listProductos = null;
		listProbodega = null;
		Traslado_logica = new TrasladoLogica();
		Probodega_logica = new ProbodegaLogica();

		try {
			if (busquedacmb.equals("procodigo")) {
				FacesContext.getCurrentInstance().addMessage(
						"msg",
						new FacesMessage(MessageBundleLoader
								.getMessage("busqueda.mensaje")
								+ " Codigo :" + buscarpro));
				listProbodega = Probodega_logica.findByPropertys(bbodegas,
						" and model.producto.procodigo LIKE ", " '%"
								+ buscarpro.toUpperCase() + "%' ");

			} else {
				if (busquedacmb.equals("pronombre")) {
					FacesContext.getCurrentInstance().addMessage(
							"msg",
							new FacesMessage(MessageBundleLoader
									.getMessage("busqueda.mensaje")
									+ " Nombre :" + buscarpro));
					listProbodega = Probodega_logica.findByPropertys(bbodegas,
							" and model.producto.pronombre LIKE ", " '%"
									+ buscarpro.toUpperCase() + "%' ");

				} else {
					FacesContext.getCurrentInstance().addMessage(
							"msg",
							new FacesMessage(MessageBundleLoader
									.getMessage("busqueda.mensaje")
									+ " Todos."));
					listProbodega = Probodega_logica.findByPropertys(bbodegas,
							"", "");
				}
			}

		} catch (Exception e) {

			e.printStackTrace();

		}

	}

	// action_confirmacionEliminarPro
	public void action_confirmacionEliminarMngmcn(ActionEvent ae) {

		if (proselec == true) {
			if (mngmcnw != null) {
				int fin = DetalleEdicion.getId().getMcnnumedoc().toString()
						.indexOf(".");
				String doc = DetalleEdicion.getId().getMcnnumedoc().toString()
						.substring(0, fin);

				if (doc.equals(bnumero)) {

					Traslado_logica = new TrasladoLogica();
					try {
						setNombreEliminarpro("Producto : "
								+ DetalleEdicion.getProducto().getProcodigo()
								+ "         " + " Nombre : "
								+ DetalleEdicion.getProducto().getPronombre()
								+ "Cantidad : " + DetalleEdicion.getMcncantid());
					} catch (Exception e) {
						e.printStackTrace();
					}
					toggleModalpro(ae);
				} else {
					FacesContext.getCurrentInstance().addMessage("msg",
							new FacesMessage("Debe seleccionar un Producto"));
				}
			}
		} else {
			FacesContext.getCurrentInstance().addMessage("msg",
					new FacesMessage("Debe seleccionar un Producto"));
		}

	}

	// rowSelectionListenerPro
	public void rowSelectionListenerDetalle(RowSelectorEvent event) {
		MngmcnWork mngmcnw = null;
		MngmcnWork[] lista = getMngmcnw();
		proselec = true;
		for (int i = 0; i < getMngmcnw().length; i++) {
			mngmcnw = lista[i];
			if (mngmcnw.isSelected()) {
				DetalleEdicion = mngmcnw.getMngmcnw();
				String Undme = DetalleEdicion.getUnimedByMcnunimed()
						.getUmdcodigo();
				String Undmed = DetalleEdicion.getId().getMcnempresa();
			}
		}
	}

	// action_GuardarRequi_Pro
	public String action_Guardar_Mngmcn() throws Exception {
		action_Validabodega(null);
		action_ValidaProvee(null);
		Traslado_logica = new TrasladoLogica();

		if (listseries.size() > 0) {
			aprocantidad = Double.valueOf(String.valueOf(numseries));
		}

		if (bproveenom == "" || bproveenom == null || MiVinculado == null) {
			FacesContext.getCurrentInstance().addMessage(
					"msg",
					new FacesMessage(
							"Debe Agregar un Proveedor para esta Entrada"));
			retornar = "Cancelado";
		} else {

			if (bbodegasnom == "" || bbodegasnom == null) {
				FacesContext.getCurrentInstance().addMessage("msg",
						new FacesMessage("Debe Agregar una bodega existente"));
				retornar = "Cancelado";
			} else {

				miProducto = Traslado_logica.consultarDetalle(aproducto);
				if (miProducto == null) {
					apronombre = "Producto no valido.";
				}

				if (apronombre == "" || apronombre == null
						|| apronombre == "Producto no valido."
						|| selectedunimed == null || selectedunimed == ""
						|| aprocantidad == null || aprocantidad == 0) {
					FacesContext
							.getCurrentInstance()
							.addMessage(
									"msg",
									new FacesMessage(
											"Debe Validar El Producto y Agregar la cantidad requerida"));
					retornar = "Cancelado";
				} else {

					if (swnuevo == true) {

						Mngdoc_c.getId().setDocempresa(bempresa);
						Mngdoc_c.getId().setDocclase(bclase);
						Mngdoc_c.getId().setDoctipo(btipo);
						miVinculado = new Vinculado();
						miVinculado.setVincedula(bproveecod);
						Mngdoc_c.getId().setDocvinkey(".");
						Mngdoc_c.setVinculado(miVinculado);
						Mngdoc_c.getId().setDocnumero(Double.valueOf(bnumero));
						Mngdoc_c.setDocfecha(bfecha);
						Mngdoc_c.setDocccosto("CC1 ");
						Mngdoc_c.getBodega().setBodcodigo(bbodegas);
						Mngdoc_c.setDocbodsale(".");
						bdetalle = bdetalle.toUpperCase();
						Mngdoc_c.setDocdetalle(bdetalle);
						//Mngdoc_c.getDlluser().setUsrcodigo(busuario);
						setMilabel(Traslado_logica.consultarlabel(new Long(
								selecestado)));

						Mngdoc_c.setLabel(milabel);
						bclase = Mngdoc_c.getId().getDocclase();
						bempresa = Mngdoc_c.getId().getDocempresa();
						retornar = "Terminado";
						mngdocw = null;
						listTrasDoc = null;
						listTrasDoc = Traslado_logica
								.consultarMngdocProperty_Entradas(
										bclase,
										btipo,
										"docnumero",
										bnumero,
										(String) SessionUtil
												.get(SessionVars.BODAUTORIZADAS));
						listTrasDoc = getlistTrasDoc();
						
						menu_ppal_MB obje = (menu_ppal_MB)FacesUtils.getManagedBean("menu_ppal_MB");
						Mngdoc_c.setDlluser(obje.getMiDlluser());
						Mngdoc_c.setDoclogfec(new Timestamp(Calendar.getInstance()
								.getTimeInMillis()));
						
						try {
							// Traslado_logica.grabar_Mngdoc(Mngdoc_c);
							bnumero = Traslado_logica
									.grabar_Mngdoc_new(Mngdoc_c);
							swnuevo = false;
							sweditando = true;

						} catch (Exception e) {
							e.printStackTrace();
							FacesContext.getCurrentInstance().addMessage("msg",
									new FacesMessage(e.getMessage()));
						}

					}

					breg = Traslado_logica.buscardetalleId(bempresa, bclase,
							btipo, Double.valueOf(bnumero));

					if (breg == null) {
						breg = 1.0;
					} else {
						breg = breg + 1.0;
					}

					miMngmcns = null;
					miMngmcne = null;
					miMngmcns = new Mngmcn();
					miMngmcne = new Mngmcn();
					miMngmcnIds = null;
					miMngmcnIde = null;
					miMngmcnIds = new MngmcnId();
					miMngmcnIde = new MngmcnId();
					miUnimed = null;
					miUnimed = new Unimed();
					miCataventa = null;
					miCataventa = new Cataventa();
					miMngmcnIds.setMcnempresa(bempresa);
					miMngmcnIds.setMcnclase(bclase);
					miMngmcnIds.setMcntipodoc(btipo);
					miMngmcnIde.setMcnempresa(bempresa);
					miMngmcnIde.setMcnclase(bclase);
					miMngmcnIde.setMcntipodoc(btipo);
					miVinculado = new Vinculado();
					miVinculado.setVincedula(bproveecod);
					miMngmcnIds.setMcnvinkey(".");
					miMngmcnIds.setMcnnumedoc(Double.valueOf(bnumero));
					miMngmcnIds.setMcnreg(breg);
					miMngmcnIde.setMcnvinkey(".");
					miMngmcnIde.setMcnnumedoc(Double.valueOf(bnumero));
					miMngmcnIde.setMcnreg(breg + 1);
					miUnimed.setUmdcodigo(selectedunimed);
					miCataventa.setCatcodigo("CAT01");
					miMngmcns.setId(miMngmcnIds);
					miMngmcns.setProducto(miProducto);
					miMngmcns.setMcncantid(aprocantidad);
					miMngmcns.setMcncantiO(aprocantidad);
					miMngmcns.setUnimedByMcnunimed(miUnimed);
					miMngmcns.setUnimedByMcnuniO(miUnimed);
					miMngmcns.setCataventa(miCataventa);
					miMngmcns.setTipoiva(miProducto.getTipoiva());

					miMngmcne.setId(miMngmcnIde);
					miMngmcne.setProducto(miProducto);
					miMngmcne.setMcncantid(aprocantidad);
					miMngmcne.setMcncantiO(aprocantidad);
					miMngmcne.setUnimedByMcnunimed(miUnimed);
					miMngmcne.setUnimedByMcnuniO(miUnimed);
					miMngmcne.setCataventa(miCataventa);
					miMngmcne.setTipoiva(miProducto.getTipoiva());

					miBodegae = new Bodega();
					miBodegae.setBodcodigo(bbodegas);
					miBodegas = new Bodega();
					miBodegas.setBodcodigo(bbodegae);
					miMngmcns.setBodega(miBodegas);
					miMngmcns.setMcnindinv("S");
					miMngmcns.setMcncuenta(".");
					miMngmcne.setBodega(miBodegae);
					miMngmcne.setMcnindinv("E");
					miMngmcne.setMcncuenta(".");
					miMngmcne.setDlluser(miDlluser);
					retornar = "Terminado";
					try {
						// Enrada y Salida de Traslado
						if (listseries.size() > 0) {

							int reg = listseries.size();
							numseries = reg;

							MiMngmcnsn_consId = new MngmcnsnId();

							MiMngmcnsn_consId.setMsnclase(miMngmcne.getId()
									.getMcnclase());
							MiMngmcnsn_consId.setMsnempresa(miMngmcne.getId()
									.getMcnempresa());
							MiMngmcnsn_consId.setMsnnumedoc(miMngmcne.getId()
									.getMcnnumedoc());
							MiMngmcnsn_consId.setMsnreg(miMngmcne.getId()
									.getMcnreg());
							MiMngmcnsn_consId.setMsntipodoc(miMngmcne.getId()
									.getMcntipodoc());
							MiMngmcnsn_consId.setMsnvinkey(miMngmcne.getId()
									.getMcnvinkey());

							String out_pro = Traslado_logica
									.grabar_Mngmcn_Series(null, miMngmcne,
											listseries, MiMngmcnsn_consId);

							if (out_pro == null) {
								listseries.clear();
								modalpopupSerie = !modalpopupSerie;
								FacesContext
										.getCurrentInstance()
										.addMessage(
												"msg",
												new FacesMessage(
														"Se actualizo Registro Satisfactoriamente"));
							} else {
								FacesContext.getCurrentInstance().addMessage(
										"msg", new FacesMessage(out_pro));
							}

						} else {
							String out_pro = Traslado_logica.grabar_Mngmcn(
									null, miMngmcne);

							if (out_pro == null) {
								FacesContext
										.getCurrentInstance()
										.addMessage(
												"msg",
												new FacesMessage(
														"Se actualizo Registro Satisfactoriamente"));
							} else {
								FacesContext.getCurrentInstance().addMessage(
										"msg", new FacesMessage(out_pro));
							}
						}

						aproducto = null;
						apronombre = null;
						aprounidad = null;
						aprecio = null;
						acatalogo = null;
						aprocantidad = null;
						breg = null;
						// sel_unimed = null;
						// sel_unimed = getSel_unimed();
						// getSel_unimed();
						txtaproducto.requestFocus();

						listDetalle = null;
						listDetalle = getlistDetalle();
						mngmcnw = null;

					} catch (Exception e) {
						e.printStackTrace();
						FacesContext.getCurrentInstance().addMessage("msg",
								new FacesMessage(e.getMessage()));
					}
				}
			}
		}
		return retornar;
	}

	// action_validadoc
	public void action_validadoc(ValueChangeEvent vce) {

		Traslado_logica = new TrasladoLogica();

		if (swnuevo == true) {
			try {
				String a = null;

				if (vce == null || vce.getNewValue() == null) {
					a = btipo.toString();
				} else {
					a = vce.getNewValue().toString();
				}

				int fin = Traslado_logica.MngDocnum_Id(bclase, (String) a)
						.toString().indexOf(".");
				String numero = Traslado_logica
						.MngDocnum_Id(bclase, (String) a).toString().substring(
								0, fin);
				// bnumero = numero;
				this.txtnumero.setValue(numero);

			} catch (Exception e) {
				e.printStackTrace();
			}

		}

	}

	// action_Validaproducto
	public void action_Validaproducto(ActionEvent ae) throws Exception {

		miProducto = null;
		Traslado_logica = new TrasladoLogica();
		apronombre = null;
		aprounidad = null;
		aprecio = null;
		acatalogo = null;
		breg = null;

		breg = Traslado_logica.buscardetalleId(bempresa, bclase, btipo, Double
				.valueOf(bnumero));

		if (breg == null) {
			breg = 1.0;
		} else {
			breg = breg + 1.0;
		}

		miProducto = Traslado_logica.consultarDetalle(aproducto);
		if (miProducto == null) {
			apronombre = "Producto no valido.";
			aprounidad = null;
			aprecio = null;
			acatalogo = null;
			aprocantidad = null;
			breg = null;
			listaUnimed = null;
			sel_unimed = null;
			txtaproducto.requestFocus();
		} else {
			listseries.clear();
			numseries = 0;
			apronombre = miProducto.getPronombre();
			listaUnimed = null;
			listaUnimed = getListaUnimed(this.aproducto);
			sel_unimed = null;
			sel_unimed = getSel_unimed();
			getSel_unimed();
			aprecio = null;
			aprocantidad = null;
			acatalogo = null;

			if (miProducto.getProserie().equals(new Long(1))) {
				listseries = getListseries();
				swserie = true;
				cmd_Agraga_Series.requestFocus();
			} else {
				swserie = false;
				txtaprocantidad.requestFocus();
			}
		}

	}

	// action_Guardar
	public String action_Guardar_MngDoc() throws Exception {
		action_Validabodega(null);
		action_ValidaProvee(null);
		Traslado_logica = new TrasladoLogica();

		if (bproveenom == "" || bproveenom == null || MiVinculado == null) {
			FacesContext.getCurrentInstance().addMessage(
					"msg",
					new FacesMessage(
							"Debe Agregar un Proveedor para esta Entrada"));
			retornar = "Cancelado";
		} else {

			if (bbodegasnom == "" || bbodegasnom == null) {
				FacesContext.getCurrentInstance().addMessage("msg",
						new FacesMessage("Debe Agregar una bodega existente"));
				retornar = "Cancelado";
			} else {

				if (swnuevo == true) {

					Mngdoc_c.getId().setDocempresa(bempresa);
					Mngdoc_c.getId().setDocclase(bclase);
					Mngdoc_c.getId().setDoctipo(btipo);
					miVinculado = new Vinculado();
					miVinculado.setVincedula(bproveecod);
					Mngdoc_c.getId().setDocvinkey(".");
					Mngdoc_c.getId().setDocnumero(Double.valueOf(bnumero));
					Mngdoc_c.setVinculado(miVinculado);
					Mngdoc_c.setDocfecha(bfecha);
					Mngdoc_c.setDocccosto("CC1 ");
					Mngdoc_c.getBodega().setBodcodigo(bbodegas);
					Mngdoc_c.setDocbodsale(".");
					Mngdoc_c.getDlluser().setUsrcodigo(busuario);
					Mngdoc_c.setDoclogfec(new Timestamp(Calendar.getInstance()
							.getTimeInMillis()));
				}

				bdetalle = bdetalle.toUpperCase();
				Mngdoc_c.setDocdetalle(bdetalle);

				retornar = "Procesando";

				try {

					setMilabel(Traslado_logica.consultarlabel(new Long(
							selecestado)));
					Mngdoc_c.setLabel(milabel);
					menu_ppal_MB obje = (menu_ppal_MB)FacesUtils.getManagedBean("menu_ppal_MB");
					Mngdoc_c.setDlluser(obje.getMiDlluser());

					if (swnuevo == true) {
						bnumero = Traslado_logica.grabar_Mngdoc_new(Mngdoc_c);
						Mngdoc_c.getId().setDocnumero(Double.valueOf(bnumero));
					} else {
						Traslado_logica.grabar_Mngdoc(Mngdoc_c);
					}

					FacesContext.getCurrentInstance()
							.addMessage(
									"msg",
									new FacesMessage(
											"Se actualizo Satisfactoriamente"));
					swnuevo = false;
					sweditando = true;

					retornar = "Entrada_B";

					listTrasDoc = null;
					listTrasDoc = Traslado_logica
							.consultarMngdocProperty_Entradas(bclase, btipo,
									"docnumero", bnumero, (String) SessionUtil
											.get(SessionVars.BODAUTORIZADAS));
					listTrasDoc = getlistTrasDoc();
					mngdocw = null;

					swnuevo = false;
					sweditando = false;

				} catch (Exception e) {
					e.printStackTrace();
					FacesContext.getCurrentInstance().addMessage("msg",
							new FacesMessage(e.getMessage()));
				}
			}
		}
		return retornar;
	}

	// action_Cancelar
	public String action_Cancelar() throws Exception {
		Traslado_logica = new TrasladoLogica();
		listTrasDoc = null;
		if (swnuevo == false) {
			listTrasDoc = Traslado_logica.consultarMngdocProperty_Entradas(
					bclase, btipo, "docnumero", bnumero, (String) SessionUtil
							.get(SessionVars.BODAUTORIZADAS));
		}
		listTrasDoc = getlistTrasDoc();

		return "Entrada_B";
	}

	public String buscaproducto() {
		Traslado_logica = new TrasladoLogica();
		Traslado_logica.procedimiento(buscar, "BOD1 ", 1, "E", 1);
		return "Tra";
	}

	public void action_EditarMngmcn(ActionEvent ae) {
		if (proselec == true) {
			Traslado_logica = new TrasladoLogica();

			try {

				this.txtaproducto.setValue(DetalleEdicion.getProducto()
						.getProcodigo().toString());
				aproducto = DetalleEdicion.getProducto().getProcodigo()
						.toString();
				aprocantidad = DetalleEdicion.getMcncantid().doubleValue();
				selectedunimed = DetalleEdicion.getUnimedByMcnunimed()
						.getUmdcodigo().toString();

				String out_proS = Traslado_logica.quitar_movtrasladoSeries(
						DetalleEdicion.getId().getMcnempresa(), DetalleEdicion
								.getId().getMcnclase(), DetalleEdicion.getId()
								.getMcnvinkey(), DetalleEdicion.getId()
								.getMcntipodoc(), DetalleEdicion.getId()
								.getMcnnumedoc().doubleValue(), DetalleEdicion
								.getId().getMcnreg().intValue());

				// String out_pro =
				// Traslado_logica.quitar_movtraslado(DetalleEdicion
				// .getId().getMcnempresa(), DetalleEdicion.getId()
				// .getMcnclase(), DetalleEdicion.getId().getMcnvinkey(),
				// DetalleEdicion.getId().getMcntipodoc(), DetalleEdicion
				// .getId().getMcnnumedoc().doubleValue(),
				// DetalleEdicion.getId().getMcnreg().intValue());

				Traslado_logica.eliminar_MngmcnEnt(DetalleEdicion.getId());

				action_Validaproducto(ae);
				listDetalle = null;
				listDetalle = getlistDetalle();
				mngmcnw = null;
				proselec = false;
				// this.txtaproducto.setValue(DetalleEdicion.getProducto()
				// .getProcodigo().toString());
				// aproducto =
				// DetalleEdicion.getProducto().getProcodigo().toString();
				// aprocantidad = DetalleEdicion.getMcncantid().doubleValue();
				// selectedunimed =
				// DetalleEdicion.getUnimedByMcnunimed().getUmdcodigo().toString();
				//			
				//
				// Traslado_logica.eliminar_Mngmcn(DetalleEdicion.getId());
				//	
				// String out_proS = Traslado_logica.quitar_movtrasladoSeries(
				// DetalleEdicion.getId().getMcnempresa(), DetalleEdicion
				// .getId().getMcnclase(), DetalleEdicion.getId()
				// .getMcnvinkey(), DetalleEdicion.getId()
				// .getMcntipodoc(), DetalleEdicion.getId()
				// .getMcnnumedoc().doubleValue(), DetalleEdicion
				// .getId().getMcnreg().intValue());

				// System.out.print("1===========>"+DetalleEdicion.getId().getMcnempresa()+"====");
				// System.out.print("2===========>"+DetalleEdicion
				// .getId().getMcnclase()+"====");
				// System.out.print("3===========>"+DetalleEdicion.getId()
				// .getMcnvinkey()+"====");
				// System.out.print("4===========>"+DetalleEdicion.getId()
				// .getMcntipodoc()+"====");
				// System.out.print("5===========>"+DetalleEdicion.getId()
				// .getMcnnumedoc().doubleValue()+"====");
				// System.out.print("6===========>"+DetalleEdicion
				// .getId().getMcnreg().intValue()+"====");

				// String out_pro =
				// Traslado_logica.quitar_movtraslado(DetalleEdicion
				// .getId().getMcnempresa(), DetalleEdicion.getId()
				// .getMcnclase(), DetalleEdicion.getId().getMcnvinkey(),
				// DetalleEdicion.getId().getMcntipodoc(), DetalleEdicion
				// .getId().getMcnnumedoc().doubleValue(),
				// DetalleEdicion.getId().getMcnreg().intValue());

				// if (out_pro == null) {
				// FacesContext.getCurrentInstance().addMessage(
				// "msg",
				// new FacesMessage(
				// "Se actualizo Registro Satisfactoriamente"));
				// } else {
				// FacesContext.getCurrentInstance().addMessage("msg",
				// new FacesMessage(out_pro));
				// }
				//
				// action_Validaproducto(ae);
				//			
				// listDetalle = null;
				// listDetalle = getlistDetalle();
				// mngmcnw = null;

			} catch (Exception e) {
				e.printStackTrace();
				FacesContext.getCurrentInstance().addMessage("msg",
						new FacesMessage("No se puede Actualizar Registro."));
			}
		}
	}

	public void action_BuscarProvee(ActionEvent ae) {
		listaProveepopup = null;
		Vinculado_logica = new VinculadoLogica();

		try {
			if (busquedacmbProvee.equals("vinnombre")) {
				FacesContext.getCurrentInstance().addMessage("msgbod",
						new FacesMessage("Resultado nombre :" + buscarProvee));
				listaProveepopup = Vinculado_logica
						.findByPropertyActivoLista("AND model.vinprovee = 1 AND model.vinnombre LIKE '%"
								+ buscarProvee.toUpperCase() + "%' ");

			} else {
				if (busquedacmbProvee.equals("vincedula")) {
					FacesContext.getCurrentInstance().addMessage(
							"msgbod",
							new FacesMessage("Resultado Cedula :"
									+ buscarProvee));
					listaProveepopup = Vinculado_logica
							.findByPropertyActivoLista("AND model.vinprovee = 1 AND model.vincedula LIKE '%"
									+ buscarProvee.toUpperCase() + "%' ");
				} else {

					if (busquedacmbProvee.equals("todos")) {
						FacesContext.getCurrentInstance().addMessage("msgbod",
								new FacesMessage("Resultado Todos"));

						listaProveepopup = Vinculado_logica
								.findByPropertyActivoLista(" AND model.vinprovee = 1 ");
					}

				}
			}
		} catch (Exception e) {

			e.printStackTrace();

		}

	}

	public void popupAccion_SelecionarProvee(ActionEvent ae) throws Exception {
		bproveecod = popup_cmdselecionarProvee.getValue().toString();
		action_ValidaProvee(ae);
		modalpopupProvee = !modalpopupProvee;
	}

	public void action_ValidaProvee(ActionEvent ae) throws Exception {
		MiVinculado = null;
		Vinculado_logica = new VinculadoLogica();
		bproveecod = bproveecod.toUpperCase();
		bproveecod = bproveecod.trim();
		MiVinculado = Vinculado_logica.findByPropertyActivo("vincedula",
				bproveecod);

		if (MiVinculado == null) {
			MiVinculado = null;
			bproveenom = "";
			FacesContext.getCurrentInstance().addMessage(
					"msg",
					new FacesMessage("Proveedor " + bproveecod
							+ " no existe o no se encuentra activo"));
			bproveecod = "";
		} else {
			bproveenom = MiVinculado.getVinnombre();
		}

	}

	public void popupAccion_EstadoProvee(ActionEvent ae) {
		modalpopupProvee = !modalpopupProvee;
	}

	public void popupAccion_EstadoSerie(ActionEvent ae) {
		listseries.clear();
		modalpopupSerie = !modalpopupSerie;
	}

	public void popupAccion_EstadoSerieIng(ActionEvent ae) {
		modalpopupSerieIng = !modalpopupSerieIng;
	}

	public void popupAccion_EstadoSerieIngVer(ActionEvent ae) {
		if (proselec == true) {
			if (mngmcnw != null) {
				Traslado_logica = new TrasladoLogica();
				numseriesIng = 0;

				listseriesIng = null;
				try {
					listseriesIng = Traslado_logica
							.consultarSeriesfindBy_all_Ing(DetalleEdicion
									.getId());
					numseriesIng = listseriesIng.size();

				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				if (numseriesIng > 0) {
					modalpopupSerieIng = !modalpopupSerieIng;
				} else {
					FacesContext.getCurrentInstance().addMessage("msg",
							new FacesMessage("El registro no contiene Series"));
				}
			}
		}
	}

	public void popupAccion_AgregarSerie(ActionEvent ae) {
		// MiMngmcnsn_cons = null;
		MiPrserie_cons = null;
		logicaProserie = new ProserieLogica();

		// logicaMngmcnsn = new MngmcnsnLogica();
		int validserie = 0;
		if (agregarSerie == null || agregarSerie == "") {
		} else {

			// try {
			// MiMngmcnsn_cons = logicaMngmcnsn
			// .findByProperty(" where model.id.msnserial ='"
			// + agregarSerie + "' ");
			// } catch (Exception e) {
			// // TODO Auto-generated catch block
			// e.printStackTrace();
			// }

			try {
				MiPrserie_cons = logicaProserie.findByPropertySerie(miProducto
						.getProcodigo(), agregarSerie, "");
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

			if (MiPrserie_cons.size() > 0) {

				FacesContext.getCurrentInstance().addMessage(
						"msg",
						new FacesMessage("El Serial " + agregarSerie
								+ " ya fue registrado "));

			} else {
				if (listseries.size() > 0) {

					int reg = listseries.size();
					for (int i = 0; i < reg; i++) {
						if (listseries.get(i).getCconombre().equals(
								agregarSerie)) {
							validserie = 1;
							i = reg;
						}

					}
				}

				if (validserie == 1) {
					FacesContext
							.getCurrentInstance()
							.addMessage(
									"msg",
									new FacesMessage(
											"Verifique, Este Serial Se encuentra Registrado en este Listado "));

				} else {

					MiMngmcnsn = new Mngcco();
					MiMngmcnsn.setCcocodigo(miProducto.getProcodigo());
					MiMngmcnsn.setCconombre(agregarSerie);
					MiMngmcnsn.setCcoactivo(new Long("6"));
					listseries.add(MiMngmcnsn);
					int reg = listseries.size();
					numseries = reg;
					agregarSerie = null;
					Utils.ordena(listseries, "cconombre");
					txtAgregaSerie.requestFocus();
				}
			}
		}
	}

	public void popupAccion_EliminarSerie(ActionEvent ae) throws Exception {
		String Regserial = popup_cmdselecionarSerie.getValue().toString();

		if (listseries.size() > 0) {
			int reg = listseries.size();
			numseries = reg;
			for (int i = 0; i < reg; i++) {
				if (listseries.get(i).getCconombre().equals(Regserial)) {
					listseries.remove(i);
					i = reg;
				}
				reg = listseries.size();
				numseries = reg;

			}
		}

	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public InputFileData getCurrentFile() {
		return currentFile;
	}

	public void setCurrentFile(InputFileData currentFile) {
		this.currentFile = currentFile;
	}

	public String getComponentStatus() {
		return componentStatus;
	}

	public void setComponentStatus(String componentStatus) {
		this.componentStatus = componentStatus;
	}

	public int getFileProgress() {
		return fileProgress;
	}

	public void setFileProgress(int fileProgress) {
		this.fileProgress = fileProgress;
	}

	public void uploadFile(ActionEvent event) {
		InputFile inputFile = (InputFile) event.getSource();

		// file has been saved
		String subio = inputFile.getValidatedSubmitOnUpload();
		if (subio.equals(InputFile.SUBMIT_POST_UPLOAD)) {
			url = inputFile.getFile().getPath();
			System.out.println("ESTA ES LA RUTA -> " + url);
			componentStatus = "El archivo cargo exitosamente.";

			Traslado_logica = new TrasladoLogica();
			String txtArch = Traslado_logica.importarArchivo(url);

			String[] Series = null;
			Series = txtArch.split(",");
			for (int i = 0; i < Series.length; i++) {
				// agregarSerie = Series [i];
				MiPrserie_cons = null;
				logicaProserie = new ProserieLogica();
				MiMngmcnsn_cons = null;
				logicaMngmcnsn = new MngmcnsnLogica();
				int validserie = 0;
				if (Series[i] == null || Series[i] == "") {
				} else {

					// try {
					// MiMngmcnsn_cons = logicaMngmcnsn
					// .findByProperty(" where model.id.msnserial ='"
					// + Series[i] + "' ");
					// } catch (Exception e) {
					// // TODO Auto-generated catch block
					// e.printStackTrace();
					// }

					try {
						MiPrserie_cons = logicaProserie.findByPropertySerie(
								miProducto.getProcodigo(), Series[i], "");
					} catch (Exception e) {
						e.printStackTrace();
					}

					if (MiPrserie_cons.size() > 0) {

						FacesContext.getCurrentInstance().addMessage(
								"msg",
								new FacesMessage("El Serial " + Series[i]
										+ " ya fue registrado "));

					} else {

						if (listseries.size() > 0) {
							int reg = listseries.size();
							for (int w = 0; w < reg; w++) {
								if (listseries.get(w).getCconombre().equals(
										Series[i])) {
									validserie = 1;
									w = reg;
								}

							}
						}

						if (validserie == 1) {
							FacesContext
									.getCurrentInstance()
									.addMessage(
											"msgSeries",
											new FacesMessage(
													"Verifique, Este Serial "
															+ Series[i]
															+ " Se encuentra Registrado en este Listado "));

						} else {

							MiMngmcnsn = new Mngcco();
							MiMngmcnsn.setCcocodigo(miProducto.getProcodigo());
							MiMngmcnsn.setCconombre(Series[i]);
							MiMngmcnsn.setCcoactivo(new Long("6"));
							listseries.add(MiMngmcnsn);
							int reg = listseries.size();
							numseries = reg;
						}

					}
				}

			}
			Utils.ordena(listseries, "cconombre");
			// System.out.print("Text de Archivo =="+txtArch+"==");
			// fileAnexoPath = fileAnexo;
		}
		// invalid file, happens when clicking on upload without selecting a
		// file, or a file with no contents.
		if (inputFile.getStatus() == InputFile.INVALID) {

			componentStatus = "Archivo invalido.";
		}
		// file size exceeded the limit
		if (inputFile.getStatus() == InputFile.SIZE_LIMIT_EXCEEDED) {
			componentStatus = "Tamano archivo excede el limite permitido.";
		}
		// indicate that the request size is not specified.
		if (inputFile.getStatus() == InputFile.UNKNOWN_SIZE) {
			componentStatus = "Tamano de archivo desconocido";
		}

		System.out.println("Status archive -> " + componentStatus);
		FacesContext.getCurrentInstance().addMessage("msg",
				new FacesMessage(componentStatus));

	}

	public void fileUploadProgress(EventObject event) {
		InputFile ifile = (InputFile) event.getSource();
		fileProgress = ifile.getFileInfo().getPercent();
	}

	public void action_procesarArchivo(ActionEvent ae) {
		Traslado_logica = new TrasladoLogica();
		Traslado_logica.importarArchivo(url);
	}

	public void action_TipoSeriales(ValueChangeEvent vce) {
		if (vce.getNewValue() != null) {
			if (vce.getNewValue().equals("0")) {
				btipo_seriales = true;
			} else {
				btipo_seriales = false;
			}
		}

	}
	// // Actions Propiedades Fin
	// ///////////////////////////////////////////////
}
